mysql的in查询参数限制,多少数据量会造成性能下降?什么时候创建临时表合适?

您所在的位置:网站首页 mysql 单表数据大于500万 mysql的in查询参数限制,多少数据量会造成性能下降?什么时候创建临时表合适?

mysql的in查询参数限制,多少数据量会造成性能下降?什么时候创建临时表合适?

2024-07-11 06:42| 来源: 网络整理| 查看: 265

文章目录 一、前言二、本地配置以及生成测试数据1、本地mysql配置(1)mysql版本(2)本地sql长度限制 2、创建表和测试数据(50W)(1)创建表语句(2)循环插入50W条数据 3、测试in查询是否用到了索引 三、开始测试1、查询顺序字符串2、打乱查询字符串比较3、创建临时表测试(1)创建临时表(2)插入数据,进行测试(3)临时表的耗时展示 四、总结1、in查询数据量多少会性能下降?2、数据量多少创建临时表比较好3、提升性能的建议

一、前言

      如题所示,博主对这个问题一直模模糊糊的,网上也没一个具体的测试,都是零零散散的提一下,缺少系统的测试。前两天看到csdn的论坛,看到两个大版主,有的说超过300性能会下降,有的说超过999性能会下降???行吧,咱们不如自己测测。

论坛链接:https://bbs.csdn.net/topics/392474752 二、本地配置以及生成测试数据

测试前首先是明确博主这边的各种环境,按照环境来测是最准的。

1、本地mysql配置 (1)mysql版本 mysql> select version(); +-----------+ | version() | +-----------+ | 5.5.53 | +-----------+ 1 row in set (0.00 sec) (2)本地sql长度限制 mysql> show variables like '%max_allowed_packet%'; +--------------------------+------------+ | Variable_name | Value | +--------------------------+------------+ | max_allowed_packet | 52428800 | | slave_max_allowed_packet | 1073741824 | +--------------------------+------------+ 2 rows in set (0.00 sec)

      in查询的数量多少,和sql长度有关的,我们本地sql长度长一些,这样in查询数量多的时候也不至于报错。博主本地sql限制长度是50M,一次插5W条数据没问题,相应的in查询5W也不是问题哈哈。

mysql批量插入数据,一次插入多少行数据效率最高?

2、创建表和测试数据(50W) (1)创建表语句 CREATE TABLE `student` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'id主键', `sno` int(10) NOT NULL DEFAULT '0' COMMENT '学号', `name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(10) NOT NULL DEFAULT '1' COMMENT '年龄', `test_id` int(10) NOT NULL DEFAULT '0' COMMENT '和id一样的值,方便测试', PRIMARY KEY (`id`), UNIQUE KEY `sno` (`sno`), KEY `test_id` (`test_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表(test)'

      这里的test_id表的数据和id的值是一样的,方便咱们测试。索引什么的都建好,50W数据也不少了,可以用到索引的。

(2)循环插入50W条数据


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3